﻿#light

// doesn't compile
//type ^a Eq =
//    abstract (==) : ^a -> ^a -> bool
//    abstract (<>) : 'a -> 'a -> bool

//type 'a Eq =
//    abstract (==) : 'a -> 'a -> bool
//    abstract (<>) : 'a -> 'a -> bool
//    
//type 'a Num = 
//    abstract (*) : 'a -> 'a -> 'a

//val inline (*) : ^a -> ^b -> ^c 
//    when (^a or ^b) :
//    (static member (*) : ^a * ^b    -> ^c)
//     and default ^b : ^c and default ^c : ^a
//     and default ^c : ^b and default ^a : ^c
//     and default ^a : ^b and default ^a : int
//     
